package myGet

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

func SendGetRequest(path string, m map[string]string) {
	//添加参数
	var data = url.Values{}
	for key, value := range m {
		data.Set(key, value)
	}

	//将字符串解析成url对象 ,例如http://127.0.0.1:8000/hi
	u, err := url.ParseRequestURI(path)
	if err != nil {
		fmt.Printf("解析失败, err:%v\n", err)
	}
	//对参数进行url编码后,放入url对象的RawQuery中,结果例如：http://127.0.0.1:8000/hi?age=18&name=jack
	u.RawQuery = data.Encode()
	fmt.Printf("编码后 :%v\n", u.String())

	//发起Get请求,参数是url字符串
	resp, err := http.Get(u.String())
	if err != nil {
		fmt.Printf("请求失败, err:%v\n", err)
		return
	}
	//关闭response.Body响应
	defer resp.Body.Close()

	//读取响应体，可以使用多种方式读取，这里使用的是ioutil方式，b是返回的内容
	b, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("get resp failed, err:%v\n", err)
		return
	}
	fmt.Println(string(b))
}
